// pages/category/category.js
const config = require('../../config')
import {store} from '../../store/store'
Page({

  /**
   * 页面的初始数据
   */
  data: {
    store,
    category: 0,
    total: 0,
    keyWord: '',
    page: 1,
    pageSize: 20,
    activeKey: 0,
    // 测试的分类数据
    allItems: [
      {
        item: '塑料水瓶',
        type: 1
      },
      {
        item: '塑料水瓶',
        type: 1
      },
      {
        item: '塑料水瓶',
        type: 1
      },
      {
        item: '塑料水瓶',
        type: 1
      },
      {
        item: '塑料水瓶',
        type: 1
      },
      {
        item: '塑料水瓶',
        type: 1
      },
    ],
    currentItems: [], // 当前显示的分类内容
    color: [
      '#1d228a',
      '#e50015',
      '#009a44',
      '#ef8201',
    ],
    imgList: [
      "/images/img/1.png",
      "/images/img/2.png",
      "/images/img/3.png",
      "/images/img/4.png",
    ],
    btnType: [
      'primary',
      'danger',
      'success',
      'warning',
    ],
    tagName: [
      '可回收',
      '有害垃圾',
      '厨余垃圾',
      '其他垃圾'
    ]
  },
  onSidebarChange(event) {
    console.log(event.detail);
    this.setData({
      category: event.detail + 1,
      keyWord: '',
      currentItems: [],
      page: 1,
    })
    this.getSortedList(event.detail + 1)
  },
  async getSortedList(id) {
    const token = wx.getStorageSync('token')
    const res = await wx.p.request({
      url: `${config.BASE_URL}/home/category`,
      method: 'POST',
      header: {
        token: token,
        'Content-Type': 'application/json'
      },
      data: {
        category: id,
        page: this.data.page,
        pageSize: this.data.pageSize
      }
    })
    console.log(res);
    if (res.data.code !== 200) {
      return wx.showToast({
        title: '暂无数据',
        icon: 'error'
      })
    }
    const data = res.data.data
    this.setData({
      currentItems: [...this.data.currentItems, ...data],
      total: res.data.total
    })
  },
  onClickNav({ detail = {} }) {
    this.setData({
      mainActiveIndex: detail.index || 0,
    });
  },

  onClickItem({ detail = {} }) {
    const activeId = this.data.activeId === detail.id ? null : detail.id;
    this.setData({ activeId });
  },
  onSearch(e) {
    this.setData({
      currentItems: [],
      page: 1
    })
    console.log(e.detail);
    this._search(e.detail)
  },
  async _search(key) {
    const token = wx.getStorageSync('token')
    const {data:res} = await wx.p.request({
      method: 'POST',
      header: {
        token: token,
        'Content-Type': 'application/json'
      },
      url: `${config.BASE_URL}/home/search`,
      data: {
        name: key,
        page: this.data.page,
        pageSize: this.data.pageSize
      }
    })
    if (res.code !== 200) return wx.showToast({
      title: '查询失败',
    })
    this.setData({
      currentItems: [...res.data]
    })
  },
  onChange(e) {
    this.setData({
      keyWord: e.detail
    })
  },
  onClick() {
    console.log(this.data.keyWord);
  },
  pageSearch() {
    wx.request({
      url: 'url',
    })
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    console.log('路径参数',options);
    if (!options) return
    if (options.key) {
      // 假设 options.key 是你要处理的字符串
      let key = options.key;
      // 使用正则表达式匹配末尾的中文句号并删除
      key = key.replace(/[。]$/, '');
      this.setData({
        keyWord: key
      })
      return this._search(key)
    }
    this.setData({
      activeKey: +options.id
    })
    this.getSortedList(+options.id + 1)
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {
    // 判断是否无数据
    const pageSize = this.data.pageSize // 请求页面数据量大小 可改变
    const total = this.data.total // 当前分类栏目的服务器总数
    const page = this.data.page // 当前页码
    // 是否
    // if (total === page * pageSize) return
    // const remain = total - pageSize * page
    // if (remain <=0 ) return
    // // pageSize 比 剩余量大
    // if (pageSize > remain) {
    //   this.setData({
    //     pageSize: remain
    //   })
    // }
    if (this.data.total === this.data.currentItems.length) return
    // 请求页码加1
    this.setData({
      page: this.data.page + 1
    })
    if(this.data.keyWord !== '') return this.onSearch()
    this.getSortedList(this.data.category)
  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})